// behavior.js 第2种方法
// 1.新建 behavior 文件，从 mobx-miniprogram-bindings 库中导入 BehaviorWithStore 方法
// 2.在 BehaviorWithStore 方法中配置 storeBindings 配置项从 Store 中映射数据和方法
// 3.在 Page 方法中导入创建的 behavior ，然后配置 behavior 属性，并使用导入的 behavior

import { BehaviorWithStore } from "mobx-miniprogram-bindings";
import { numStore } from "../../stores/numstore";
import { numStore2 } from "../../stores/numstore2";

export const cartBehavior = BehaviorWithStore({
  // 3.1  如果一个组件或者页面需要绑定多个stores对象
  //     需要将storeBindings 配置项改造成一个数组
  //      数组的每一项是一个个要绑定的stores
  storeBindings: [
    {
      store: numStore,
      fields: {
        a: () => numStore.numA,
        b: () => numStore.numB,
        total: () => numStore.sum,
      },
      // namespace: "numStore",
      actions: {
        updatedata: "update",
      },
    },
    {
      store: numStore2,
      namespace: "numStore2",
      fields: {
        numA: () => numStore2.numA,
        numB: () => numStore2.numB,
        sum: () => numStore2.sum,
      },
      actions: {
        updatedata2: "update",
      },
    },
  ],
});
// BehaviorWithStore的作用： 01
// 让页面和store对象建立关联
// export const cartBehavior = BehaviorWithStore({
//   storeBindings: {
//     store: numStore,
//     // fields: ["numA", "numB", "sum"],
//     // 对象写法
//     // fields: ["numA", "numB", "sum"],
//     fields: {
//       numA: () => numStore.numA,
//       numB: () => numStore.numB,
//       sum: () => numStore.sum,
//     },
//     // actions: ["update"],

//     actions: {
//       updatedata: "update",
//     },
//   },
// });
